import sqlite3, sys
from helper import *

# sys.path.append('../')
# db = './bd/GestionBD.db'


class ConexionBD:
    def conectar(self):
        self.db = sqlite3.connect(BASEDEDATOS)
        self.db.executescript("""
            CREATE TABLE IF NOT EXISTS Cliente(ID INTEGER PRIMARY KEY, Nombre TEXT, Domicilio TEXT,Telefono NUMERIC);
            CREATE TABLE IF NOT EXISTS Producto(Codigo INTEGER PRIMARY KEY, Producto TEXT, Precio_Publico NUMERIC, Precio_Mayor NUMERIC);
            CREATE TABLE IF NOT EXISTS Pedidos(Numero INTEGER PRIMARY KEY, Cliente TEXT, Producto TEXT,  Precio NUMERIC, Fecha TEXT, Fecha_ent TEXT, Estado TEXT)
            """)

    def abrir_cursor(self):
        """Abrir un cursor"""
        self.cursor = self.db.cursor()

    def ejecutar_consulta(self, query, values=''):
        """Ejecutar una consulta"""
        if values != '':
            self.cursor.execute(query, values)
        else:
            self.cursor.execute(query)

    def traer_datos(self):
        """Traer todos los registros"""
        self.rows = self.cursor.fetchall()

    def send_commit(self, query):
        """Enviar commit a la base de datos"""
        sql = query.lower()
        es_lectura = sql.count('select')
        if es_lectura < 1:
            self.db.commit()

    def cerrar_cursor(self):
        """Cerrar cursor"""
        self.cursor.close()

    def ejecutar(self, query, values=''):
        """Compilar todos los procesos"""
        # ejecuta todo el proceso solo si las propiedades han sido definidas

        self.conectar()
        self.abrir_cursor()
        self.ejecutar_consulta(query, values)
        self.send_commit(query)
        self.traer_datos()
        self.cerrar_cursor()

        return self.rows


con = ConexionBD()
#con.conectar()
#con.ejecutar("insert into cliente(Nombre, Domicilio) values(?, ?)", ("Julio Garcia", "fran 34"))

#for i in Personas:
    #con.ejecutar("insert into personas2( Apellido, Nombre, Domicilio, Ocupacion, Edad) values(?, ?, ?, ?, ?)", i)

#b = con.ejecutar("select * from cliente")
#for row in b:
    #print row[0], row[1], row[2], row[3]

#nombre = 'Evaristo Garcia'
#Id = 3
#con.ejecutar("UPDATE Cliente SET Nombre = ? WHERE ID = ?", (nombre, Id))

# b = con.ejecutar("insert into Producto(Producto, Precio) values(?, ?)", ("Barco", 35))

# b = con.ejecutar("select * from producto")
# print '\n--------Productos---------'
# for row in b:
#     print row[0], row[1], row[2]
# 
# c = con.ejecutar("select * from cliente")
# print '\n--------Clientes---------'
# for row in c:
#     print row[0], row[1], row[2], row[3]


# cliente = 'Jose'
# producto = '1 Pelota'
# precio = 90
# fecha = ''
# fecha_ent = ''
# con.ejecutar("INSERT INTO Pedidos(CLIENTE, PRODUCTO, PRECIO, FECHA, FECHA_ENT) VALUES(?, ?, ?, ?, ?)", (cliente, producto, precio, fecha, fecha_ent))

# d = con.ejecutar("select * from pedidos")
# print '\n--------Pedidos---------'
# for row in d:
#     print row[0], row[1], row[2], row[3], row[4], row[5]